﻿using SIIE_ERP.Codigo;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace SIIE_ERP.BaseDatos.Configuracion.Empresa.PagoLicencias
{
    public class dbo_Cat_Empresa_PagoDomiciliado
    {
        #region Propiedades

        private string _RFC;
        private string _Usuario;

        #endregion
        
        #region Constructores

        public dbo_Cat_Empresa_PagoDomiciliado(string RFC, string Usuario)
        {
            this._RFC = RFC;
            this._Usuario = Usuario;
        }

        #endregion
        
        #region INSERT

        public Respuesta Insert_Empresa_PagoDomiciliado(
            	        
	        bool IsAnual,
            string FechaVenc_mm,
            string FechaVenc_aa,
            string CodigoSeguridad,
            string Numero_Tarjeta,
            string Nombre,
            string Apellidos,
            string Dir_Calle,
            string Dir_Colonia,
            string Dir_CiudadPueblo,
            int Id_Pais,
            int Id_Estado,
            string CP,
            int Id_TipoTarjeta,
            string Email,
            string Telefono,
            string Celular
        )
        {
            try
            {
                string Query = @"INSERT INTO dbo_Cat_Empresa_PagoDomicialiado
                             (
                                	Id_Cat_Empresa_PagoDomicialiado,
	                                RFC,
	                                IsAnual,
	                                FechaVenc_mm,
	                                FechaVenc_aa,
	                                CodigoSeguridad,
	                                Numero_Tarjeta,
	                                Nombre,
	                                Apellidos,
	                                Dir_Calle,
	                                Dir_Colonia,
	                                Dir_CiudadPueblo,
	                                Id_Pais,
	                                Id_Estado,
	                                CP,
	                                IsActive,
	                                Id_TipoTarjeta,
	                                Email,
	                                Telefono,
	                                Celular,
	                                Fecha_Alta,
	                                Usuario_Alta,
	                                Fecha_Mantto,
	                                Usuario_Mantto
                             )
                             VALUES
                             (
                                    IIF(DCount('*', 'dbo_Cat_Empresa_PagoDomicialiado') = 0, 1, DMax('Id_Cat_Empresa_PagoDomicialiado', 'Id_Cat_Empresa_PagoDomicialiado') + 1),
                                    '@@RFC',
	                                @@IsAnual,
	                                '@@FechaVenc_mm',
	                                '@@FechaVenc_aa',
	                                '@@CodigoSeguridad',
	                                '@@Numero_Tarjeta',
	                                '@@Nombre',
	                                '@@Apellidos',
	                                '@@Dir_Calle',
	                                '@@Dir_Colonia',
	                                '@@Dir_CiudadPueblo',
	                                @@Id_Pais,
	                                @@Id_Estado,
	                                '@@CP',
	                                1,
	                                @@Id_TipoTarjeta,
	                                '@@Email',
	                                '@@Telefono',
	                                '@@Celular',	                                
	                                NOW(),
                                    '@@Usuario_Alta',
                                    NOW(),
                                    '@@Usuario_Mantto'
                             )";

                Query = Query.Replace("@@RFC", this._RFC);

                if (IsAnual)
                    Query = Query.Replace("@@IsAnual", "1");
                else
                    Query = Query.Replace("@@IsAnual", "0");


                Query = Query.Replace("@@FechaVenc_mm", FechaVenc_mm);
                Query = Query.Replace("@@FechaVenc_aa", FechaVenc_aa);
                Query = Query.Replace("@@CodigoSeguridad", CodigoSeguridad);
                Query = Query.Replace("@@Numero_Tarjeta", Numero_Tarjeta);
                Query = Query.Replace("@@Nombre", Nombre.Replace("'", "''"));
                Query = Query.Replace("@@Apellidos", Apellidos.Replace("'", "''"));
                Query = Query.Replace("@@Dir_Calle", Dir_Calle.Replace("'", "''"));
                Query = Query.Replace("@@Dir_Colonia", Dir_Colonia.Replace("'", "''"));
                Query = Query.Replace("@@Dir_CiudadPueblo", Dir_CiudadPueblo.Replace("'", "''"));
                Query = Query.Replace("@@Id_Pais", Id_Pais.ToString());
                Query = Query.Replace("@@Id_Estado", Id_Estado.ToString());
                Query = Query.Replace("@@CP", CP);
                Query = Query.Replace("@@Id_TipoTarjeta", Id_TipoTarjeta.ToString());
                Query = Query.Replace("@@Email", Email);
                Query = Query.Replace("@@Telefono", Telefono);
                Query = Query.Replace("@@Celular", Celular);
                Query = Query.Replace("@@Usuario_Alta", this._Usuario);
                Query = Query.Replace("@@Usuario_Mantto", this._Usuario);

                return SrvDB.ExecuteQuery_Insert(Query);                
            }
            catch (Exception Ex)
            {
                return new Respuesta(2, Ex.Message);
            }            
        }

        #endregion

        #region UPDATE

        public Respuesta Update_Empresa_PagoDomiciliado_Por_RFC(
            
            bool IsAnual,
            string FechaVenc_mm,
            string FechaVenc_aa,
            string CodigoSeguridad,
            string Numero_Tarjeta,
            string Nombre,
            string Apellidos,
            string Dir_Calle,
            string Dir_Colonia,
            string Dir_CiudadPueblo,
            int Id_Pais,
            int Id_Estado,
            string CP,
            int Id_TipoTarjeta,
            string Email,
            string Telefono,
            string Celular
        )
        {
            try
            {
                string Query = @"UPDATE dbo_Cat_Empresa_PagoDomicialiado SET
                                        
	                                IsAnual = @@IsAnual,
	                                FechaVenc_mm = '@@FechaVenc_mm',
	                                FechaVenc_aa = '@@FechaVenc_aa',
	                                CodigoSeguridad = '@@CodigoSeguridad',
	                                Numero_Tarjeta = '@@Numero_Tarjeta',
	                                Nombre = '@@Nombre',
	                                Apellidos = '@@Apellidos',
	                                Dir_Calle = '@@Dir_Calle',
	                                Dir_Colonia = '@@Dir_Colonia',
	                                Dir_CiudadPueblo = '@@Dir_CiudadPueblo',
	                                Id_Pais = @@Id_Pais,
	                                Id_Estado = @@Id_Estado,
	                                CP = '@@CP',	                                
	                                Id_TipoTarjeta = @@Id_TipoTarjeta,
	                                Email = '@@Email',
	                                Telefono = '@@Telefono',
	                                Celular = '@@Celular',	           
                                    Fecha_Mantto = NOW(),
                                    Usuario_Mantto = '@@Usuario_Mantto'

                                 WHERE RFC = '@@RFC'";

                Query = Query.Replace("@@RFC", this._RFC);

                if (IsAnual)
                    Query = Query.Replace("@@IsAnual", "1");
                else
                    Query = Query.Replace("@@IsAnual", "0");


                Query = Query.Replace("@@FechaVenc_mm", FechaVenc_mm);
                Query = Query.Replace("@@FechaVenc_aa", FechaVenc_aa);
                Query = Query.Replace("@@CodigoSeguridad", CodigoSeguridad);
                Query = Query.Replace("@@Numero_Tarjeta", Numero_Tarjeta);
                Query = Query.Replace("@@Nombre", Nombre.Replace("'", "''"));
                Query = Query.Replace("@@Apellidos", Apellidos.Replace("'", "''"));
                Query = Query.Replace("@@Dir_Calle", Dir_Calle.Replace("'", "''"));
                Query = Query.Replace("@@Dir_Colonia", Dir_Colonia.Replace("'", "''"));
                Query = Query.Replace("@@Dir_CiudadPueblo", Dir_CiudadPueblo.Replace("'", "''"));
                Query = Query.Replace("@@Id_Pais", Id_Pais.ToString());
                Query = Query.Replace("@@Id_Estado", Id_Estado.ToString());
                Query = Query.Replace("@@CP", CP);
                Query = Query.Replace("@@Id_TipoTarjeta", Id_TipoTarjeta.ToString());
                Query = Query.Replace("@@Email", Email);
                Query = Query.Replace("@@Telefono", Telefono);
                Query = Query.Replace("@@Celular", Celular);
                Query = Query.Replace("@@Usuario_Mantto", this._Usuario);


                return SrvDB.ExecuteQuery_Update(Query);
                
                
            }
            catch (Exception Ex)
            {
                return new Respuesta(2, Ex.Message);
            }
        }

        #endregion

        #region DELETE

        public Respuesta Delete_Empresa_PagoDomiciliado_Por_RFC()
        {
            try
            {
                string Query = @"DELETE FROM dbo_Cat_Empresa_PagoDomicialiado 
                                    WHERE RFC = '@@RFC'";

                Query = Query.Replace("@@RFC", this._RFC);

                return SrvDB.ExecuteQuery_Delete(Query);                
            }
            catch (Exception Ex)
            {
                return new Respuesta(2, Ex.Message);
            }
        }

        #endregion

        #region SELECT

        public DataTable Get_Empresa_PagoDomiciliado_Por_RFC()
        {
            string Query = @"
                SELECT A1.*,
                       E1.Nombre AS Desc_Estado,
                       P1.Nombre AS Desc_Pais
                    FROM ((dbo_Cat_Empresa_PagoDomicialiado A1


                INNER JOIN dbo_Cat_SIIE_Estado AS E1 ON A1.Id_Estado = E1.Id_SIIE_Estado)
                INNER JOIN dbo_Cat_SIIE_Pais AS P1 ON A1.Id_Pais = P1.Id_SIIE_Pais)
                                

                WHERE RFC = '@@RFC'


            ";
            Query = Query.Replace("@@RFC", this._RFC);

            return SrvDB.ExecuteQuery_Get(Query);
        }
        public DataTable Get_Empresa_PagoDomiciliado_Por_RFC_Usuario()
        {
            string Query = @"
                SELECT A1.*,
                       E1.Nombre AS Desc_Estado,
                       P1.Nombre AS Desc_Pais
                    FROM ((dbo_Cat_Empresa_PagoDomicialiado A1


                INNER JOIN dbo_Cat_SIIE_Estado AS E1 ON A1.Id_Estado = E1.Id_SIIE_Estado)
                INNER JOIN dbo_Cat_SIIE_Pais AS P1 ON A1.Id_Pais = P1.Id_SIIE_Pais)
                                

                WHERE RFC = '@@RFC' and 


            ";
            Query = Query.Replace("@@RFC", this._RFC);

            return SrvDB.ExecuteQuery_Get(Query);
        }

        #endregion
    }
}

